#define xuser mixc::powerful_cat
#include"lang/cxx/ignore_case.hpp"
#include"lang/cxx.hpp"
#include"mixc.hpp"
#include"utils/counter.hpp"

xinit(xuser::the_main){
    using namespace xuser;
    counter demo = 0;

    // 演示：忽略大小写
    {
        xhint(demo);
        
        c08 foo = "foo";
        c08 bar = "FoO";

        // 不相等，因为字母大小写不一样，所以结果不为 0
        xhint(foo.compare(bar)); // foo > bar，所以返回 1
        xhint(bar.compare(foo)); // bar < foo，所以返回 -1

        // 相等，因为忽略了大小写，所以结果为 0
        xhint(foo.compare(bar, ignore_case<char>));
    }

    // 演示：忽略大小写 char16_t 版本
    {
        xhint(demo);

        c16 foo = u"foo";
        c16 bar = u"FoO";

        // 不相等，因为字母大小写不一样，所以结果不为 0
        xhint(foo.compare(bar)); // foo > bar，所以返回 1
        xhint(bar.compare(foo)); // bar < foo，所以返回 -1

        // 相等，因为忽略了大小写，所以结果为 0
        xhint(foo.compare(bar, ignore_case<char16_t>)); // 注意这里是 char16_t
    }
};
